function Include(path)	
	local module = assert(loadfile(path))
	module()
end

require("CombatLogScribe")

CLS_EventTable = {
	CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS = {
	},
	CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES = {
	},
	CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS = {
	},
	CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES = {
	},
	CHAT_MSG_COMBAT_FACTION_CHANGE = {
	},
	CHAT_MSG_COMBAT_FRIENDLY_DEATH = {
	},
	CHAT_MSG_COMBAT_HONOR_GAIN = {
	},
	CHAT_MSG_COMBAT_SELF_HITS = {
	},
	CHAT_MSG_COMBAT_SELF_MISSES = {
	},
	CHAT_MSG_COMBAT_XP_GAIN = {
	},
	CHAT_MSG_SPELL_AURA_GONE_OTHER = {
	},
	CHAT_MSG_SPELL_AURA_GONE_SELF = {
	},
	CHAT_MSG_SPELL_BREAK_AURA = {
	},
	CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF = {
	},
	CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE = {
	},
	CHAT_MSG_SPELL_DAMAGESHIELDS_ON_OTHERS = {
	},
	CHAT_MSG_SPELL_DAMAGESHIELDS_ON_SELF = {
	},
	CHAT_MSG_SPELL_FAILED_LOCALPLAYER = {
	},
	CHAT_MSG_SPELL_ITEM_ENCHANTMENTS = {
	},
	CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS = {
	},
	CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE = {
	},
	CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS = {
	},
	CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE = {
	},
	CHAT_MSG_SPELL_SELF_BUFF = {
	},
	CHAT_MSG_SPELL_SELF_DAMAGE = {
	},
	CHAT_MSG_SPELL_TRADESKILLS = {
	},
}
CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS'] = CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS']
CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_PARTY_MISSES'] = CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES']
CLS_EventTable['CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS'] = CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS']
CLS_EventTable['CHAT_MSG_COMBAT_FRIENDLYPLAYER_MISSES'] = CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES']
CLS_EventTable['CHAT_MSG_COMBAT_HOSTILE_DEATH'] = CLS_EventTable['CHAT_MSG_COMBAT_FRIENDLY_DEATH']
CLS_EventTable['CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS'] = CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS']
CLS_EventTable['CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES'] = CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES']
CLS_EventTable['CHAT_MSG_COMBAT_PARTY_HITS'] = CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS']
CLS_EventTable['CHAT_MSG_COMBAT_PARTY_MISSES'] = CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES']
CLS_EventTable['CHAT_MSG_COMBAT_PET_HITS'] = CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS']
CLS_EventTable['CHAT_MSG_COMBAT_PET_MISSES'] = CLS_EventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES']
CLS_EventTable['CHAT_MSG_SPELL_AURA_GONE_PARTY'] = CLS_EventTable['CHAT_MSG_SPELL_AURA_GONE_OTHER']
CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_PARTY_BUFF'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']
CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_SELF_BUFF'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']
CLS_EventTable['CHAT_MSG_SPELL_FRIENDLYPLAYER_BUFF'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
CLS_EventTable['CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']
CLS_EventTable['CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
CLS_EventTable['CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']
CLS_EventTable['CHAT_MSG_SPELL_PARTY_BUFF'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
CLS_EventTable['CHAT_MSG_SPELL_PARTY_DAMAGE'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']
CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS'] = CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS']
CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE'] = CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE']
CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS'] = CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS']
CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE'] = CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE']
CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS'] = CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS']
CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE'] = CLS_EventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE']
CLS_EventTable['CHAT_MSG_SPELL_PET_BUFF'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
CLS_EventTable['CHAT_MSG_SPELL_PET_DAMAGE'] = CLS_EventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']


for event, t in pairs(CombatLogScribeDB.events) do
	for pattern in pairs(t) do
		if not CLS_EventTable[event] then
			CLS_EventTable[event] = {}
		end
		CLS_EventTable[event][pattern] = true
	end
end

--[[
print("CLS_CLS_EventTable = {")
for event, t in pairs(CLS_EventTable) do
	print("\t"..event .. "= {")
	for pattern in pairs(t) do
		print("\t\t'"..pattern.."',")
	end
	print("\t},")
end
print("}")
]]

eventTable = {
	CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS = {
		'SPELLLOGCRITSCHOOLOTHEROTHER',
		'SPELLLOGSCHOOLOTHEROTHER',
		'COMBATHITCRITSCHOOLOTHEROTHER',
		'COMBATHITSCHOOLOTHEROTHER',
		'SPELLLOGCRITOTHEROTHER',
		'SPELLLOGOTHEROTHER',
		'COMBATHITCRITOTHEROTHER',
		'COMBATHITOTHEROTHER',
		'VSENVIRONMENTALDAMAGE_SLIME_OTHER',
		'VSENVIRONMENTALDAMAGE_LAVA_OTHER',
		'VSENVIRONMENTALDAMAGE_FIRE_OTHER',
		'VSENVIRONMENTALDAMAGE_FATIGUE_OTHER',
		'VSENVIRONMENTALDAMAGE_DROWNING_OTHER',
		'VSENVIRONMENTALDAMAGE_FALLING_OTHER',

	},
	CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES = {
		'VSABSORBOTHEROTHER',
		'VSRESISTOTHEROTHER',
		'IMMUNEDAMAGECLASSOTHEROTHER',
		'VSIMMUNEOTHEROTHER',
		'IMMUNEOTHEROTHER',
		'VSDEFLECTOTHEROTHER',
		'VSPARRYOTHEROTHER',
		'VSEVADEOTHEROTHER',
		'VSBLOCKOTHEROTHER',
		'VSDODGEOTHEROTHER',
		'MISSEDOTHEROTHER',
	},
	CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS = {
		'SPELLLOGCRITSCHOOLOTHERSELF',
		'SPELLLOGSCHOOLOTHERSELF',
		'COMBATHITCRITSCHOOLOTHERSELF',
		'SPELLLOGCRITSCHOOLOTHEROTHER',
		'COMBATHITSCHOOLOTHERSELF',
		'SPELLLOGSCHOOLOTHEROTHER',
		'COMBATHITCRITSCHOOLOTHEROTHER',
		'COMBATHITSCHOOLOTHEROTHER',
		'SPELLLOGCRITOTHERSELF',
		'SPELLLOGOTHERSELF',
		'COMBATHITCRITOTHERSELF',
		'SPELLLOGCRITOTHEROTHER',
		'COMBATHITOTHERSELF',
		'SPELLLOGOTHEROTHER',
		'COMBATHITCRITOTHEROTHER',
		'COMBATHITOTHEROTHER',
		'VSENVIRONMENTALDAMAGE_SLIME_OTHER',
		'VSENVIRONMENTALDAMAGE_LAVA_OTHER',
		'VSENVIRONMENTALDAMAGE_FIRE_OTHER',
		'VSENVIRONMENTALDAMAGE_FATIGUE_OTHER',
		'VSENVIRONMENTALDAMAGE_DROWNING_OTHER',
		'VSENVIRONMENTALDAMAGE_FALLING_OTHER',

	},
	CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES = {
		'VSABSORBOTHERSELF',
		'VSRESISTOTHERSELF',
		'VSABSORBOTHEROTHER',
		'VSRESISTOTHEROTHER',
		'IMMUNEOTHERSELF',
		'IMMUNEDAMAGECLASSOTHERSELF',
		'VSIMMUNEOTHERSELF',
		'IMMUNEDAMAGECLASSOTHEROTHER',
		'VSIMMUNEOTHEROTHER',
		'IMMUNEOTHEROTHER',
		'VSDEFLECTOTHERSELF',
		'VSPARRYOTHERSELF',
		'VSBLOCKOTHERSELF',
		'VSEVADEOTHERSELF',
		'VSDODGEOTHERSELF',
		'VSDEFLECTOTHEROTHER',
		'VSPARRYOTHEROTHER',
		'VSBLOCKOTHEROTHER',
		'VSEVADEOTHEROTHER',
		'VSDODGEOTHEROTHER',
		'MISSEDOTHERSELF',
		'MISSEDOTHEROTHER',
	},
	CHAT_MSG_COMBAT_FACTION_CHANGE = {
		'FACTION_STANDING_INCREASED',
		'FACTION_STANDING_DECREASED',
		'FACTION_STANDING_CHANGED',
	},
	CHAT_MSG_COMBAT_FRIENDLY_DEATH = {
		'SELFKILLOTHER',
		'UNITDESTROYEDOTHER',
		'PARTYKILLOTHER',
		'UNITDIESSELF',
		'UNITDIESOTHER',
	},
	CHAT_MSG_COMBAT_HONOR_GAIN = {
		'COMBATLOG_HONORGAIN',
		'COMBATLOG_HONORAWARD',
		'COMBATLOG_DISHONORGAIN',
	},
	CHAT_MSG_COMBAT_SELF_HITS = {
		'SPELLLOGCRITSCHOOLSELFOTHER',
		'SPELLLOGSCHOOLSELFOTHER',
		'COMBATHITCRITSCHOOLSELFOTHER',
		'COMBATHITSCHOOLSELFOTHER',
		'SPELLLOGCRITSELFOTHER',
		'SPELLLOGSELFOTHER',
		'COMBATHITCRITSELFOTHER',
		'COMBATHITSELFOTHER',
		'VSENVIRONMENTALDAMAGE_SLIME_SELF',
		'VSENVIRONMENTALDAMAGE_LAVA_SELF',
		'VSENVIRONMENTALDAMAGE_FATIGUE_SELF',
		'VSENVIRONMENTALDAMAGE_FIRE_SELF',
		'VSENVIRONMENTALDAMAGE_DROWNING_SELF',
		'VSENVIRONMENTALDAMAGE_FALLING_SELF',
	},
	CHAT_MSG_COMBAT_SELF_MISSES = {
		'IMMUNESELFSELF',
		'VSABSORBSELFOTHER',
		'VSRESISTSELFOTHER',
		'IMMUNEDAMAGECLASSSELFOTHER',
		'VSIMMUNESELFOTHER',
		'IMMUNESELFOTHER',
		'VSDEFLECTSELFOTHER',
		'VSPARRYSELFOTHER',
		'VSDODGESELFOTHER',
		'VSBLOCKSELFOTHER',
		'VSEVADESELFOTHER',
		'SPELLMISSSELFOTHER',
		'MISSEDSELFOTHER',
	},
	CHAT_MSG_COMBAT_XP_GAIN = {
		'COMBATLOG_XPGAIN_EXHAUSTION4_RAID',
		'COMBATLOG_XPGAIN_EXHAUSTION5_RAID',
		'COMBATLOG_XPGAIN_EXHAUSTION5_GROUP',
		'COMBATLOG_XPGAIN_EXHAUSTION4_GROUP',
		'COMBATLOG_XPGAIN_EXHAUSTION2_RAID',
		'COMBATLOG_XPGAIN_EXHAUSTION1_RAID',
		'COMBATLOG_XPGAIN_EXHAUSTION1_GROUP',
		'COMBATLOG_XPGAIN_EXHAUSTION2_GROUP',
		'COMBATLOG_XPGAIN_FIRSTPERSON_RAID',
		'COMBATLOG_XPGAIN_FIRSTPERSON_GROUP',
		'COMBATLOG_XPGAIN_EXHAUSTION5',
		'COMBATLOG_XPGAIN_EXHAUSTION4',
		'COMBATLOG_XPGAIN_EXHAUSTION1',
		'COMBATLOG_XPGAIN_EXHAUSTION2',
		'COMBATLOG_XPGAIN_FIRSTPERSON_UNNAMED_RAID',
		'COMBATLOG_XPGAIN_FIRSTPERSON_UNNAMED_GROUP',
		'COMBATLOG_XPGAIN_FIRSTPERSON',
		'COMBATLOG_XPLOSS_FIRSTPERSON_UNNAMED',
		'COMBATLOG_XPGAIN_FIRSTPERSON_UNNAMED',
		'COMBATLOG_XPGAIN',
	},
	CHAT_MSG_SPELL_AURA_GONE_OTHER = {
		'AURAREMOVEDOTHER',
	},
	CHAT_MSG_SPELL_AURA_GONE_SELF = {
		'AURAREMOVEDSELF',
		'AURAREMOVEDOTHER',
	},
	CHAT_MSG_SPELL_BREAK_AURA = {
		'AURADISPELSELF3',
		'AURADISPELSELF2',
		'AURADISPELSELF',
		'AURADISPELOTHER3',
		'AURADISPELOTHER2',
		'AURADISPELOTHER',
	},
	CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF = {
		'SPELLPOWERLEECHOTHERSELF',
		'SPELLEXTRAATTACKSOTHER',
		'HEALEDCRITOTHERSELF',
		'SPELLEXTRAATTACKSOTHER_SINGULAR',
		'SPELLPOWERLEECHOTHEROTHER',
		'HEALEDCRITOTHEROTHER',
		'SPELLPOWERDRAINOTHERSELF',
		'HEALEDOTHERSELF',
		'HEALEDCRITSELF',
		'HEALEDCRITOTHER',
		-- 'HEALEDSELF',
		'SPELLPOWERDRAINOTHEROTHER',
		'HEALEDOTHEROTHER',
		'HEALEDOTHER',
		'POWERGAINOTHERSELF',
		'POWERGAINOTHEROTHER',
		'SPELLCASTOTHERSTART',
		'SIMPLEPERFORMOTHERSELF',
		'ITEMENCHANTMENTADDOTHERSELF',
		'SIMPLECASTOTHERSELF',
		'SIMPLEPERFORMOTHEROTHER',
		'OPEN_LOCK_OTHER',
		'ITEMENCHANTMENTADDOTHEROTHER',
		'SIMPLECASTOTHEROTHER',
		'SPELLTERSEPERFORM_OTHER',
		'SPELLTERSE_OTHER',
		'SPELLPERFORMOTHERSTART',
		'SPELLIMMUNEOTHERSELF',
		'SPELLREFLECTOTHEROTHER',
		'IMMUNESPELLOTHERSELF',
		'SPELLDEFLECTEDOTHEROTHER',
		'SPELLIMMUNEOTHEROTHER',
		'SPELLRESISTOTHEROTHER',
		'SPELLLOGABSORBOTHEROTHER',
		'SPELLPARRIEDOTHEROTHER',
		'SPELLBLOCKEDOTHEROTHER',
		'SPELLDODGEDOTHEROTHER',
		'SPELLEVADEDOTHEROTHER',
		'SPELLDEFLECTEDOTHERSELF',
		'IMMUNESPELLOTHEROTHER',
		'SPELLRESISTOTHERSELF',
		'SPELLREFLECTOTHERSELF',
		'SPELLBLOCKEDOTHERSELF',
		'SPELLPARRIEDOTHERSELF',
		'SPELLEVADEDOTHERSELF',
		'SPELLDODGEDOTHERSELF',
		'SPELLLOGABSORBOTHERSELF',
		'SPELLMISSOTHERSELF',
		'SPELLMISSOTHEROTHER',
		'PROCRESISTOTHERSELF',
		'PROCRESISTOTHEROTHER',
		'SPELLSPLITDAMAGEOTHERSELF',
		'SPELLSPLITDAMAGEOTHEROTHER',
		'DISPELFAILEDOTHERSELF',
		'DISPELFAILEDOTHEROTHER',
	},
	CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE = {
		'SPELLLOGCRITSCHOOLOTHERSELF',
		'SPELLLOGSCHOOLOTHERSELF',
		'SPELLLOGCRITSCHOOLOTHEROTHER',
		'SPELLLOGSCHOOLOTHEROTHER',
		'SPELLLOGCRITOTHERSELF',
		'SPELLLOGOTHERSELF',
		'SPELLLOGCRITOTHEROTHER',
		'SPELLLOGOTHEROTHER',
		'SPELLCASTOTHERSTART',
		'SPELLPERFORMOTHERSTART',
		'SPELLPOWERLEECHOTHERSELF',
		'SPELLPOWERLEECHOTHEROTHER',
		'SPELLPOWERDRAINOTHERSELF',
		'SPELLPOWERDRAINOTHEROTHER',
		'SPELLPOWERDRAINSELF',
		'SPELLPOWERDRAINOTHER',
		'SPELLIMMUNEOTHERSELF',
		'SPELLREFLECTOTHEROTHER',
		'IMMUNESPELLOTHERSELF',
		'SPELLDEFLECTEDOTHEROTHER',
		'SPELLIMMUNEOTHEROTHER',
		'SPELLRESISTOTHEROTHER',
		'SPELLLOGABSORBOTHEROTHER',
		'SPELLPARRIEDOTHEROTHER',
		'SPELLBLOCKEDOTHEROTHER',
		'SPELLDODGEDOTHEROTHER',
		'SPELLEVADEDOTHEROTHER',
		'SPELLDEFLECTEDOTHERSELF',
		'IMMUNESPELLOTHEROTHER',
		'SPELLRESISTOTHERSELF',
		'SPELLREFLECTOTHERSELF',
		'SPELLBLOCKEDOTHERSELF',
		'SPELLPARRIEDOTHERSELF',
		'SPELLEVADEDOTHERSELF',
		'SPELLDODGEDOTHERSELF',
		'SPELLLOGABSORBOTHERSELF',
		'SPELLMISSOTHERSELF',
		'SPELLMISSOTHEROTHER',
		'INSTAKILLSELF',
		'INSTAKILLOTHER',
		'PROCRESISTOTHERSELF',
		'PROCRESISTOTHEROTHER',
		'SPELLSPLITDAMAGEOTHERSELF',
		'SPELLSPLITDAMAGEOTHEROTHER',
		'SPELLDURABILITYDAMAGEALLOTHERSELF',
		'SPELLDURABILITYDAMAGEALLOTHEROTHER',
		'SPELLDURABILITYDAMAGEOTHERSELF',
		'SPELLDURABILITYDAMAGEOTHEROTHER',
		'SPELLINTERRUPTOTHERSELF',
		'SPELLINTERRUPTOTHEROTHER',
		'SIMPLECASTOTHERSELF',
		'SIMPLECASTOTHEROTHER',
		'SPELLTERSE_OTHER',
		'SIMPLEPERFORMOTHERSELF',
		'OPEN_LOCK_OTHER',
		'SIMPLEPERFORMOTHEROTHER',
		'SPELLTERSEPERFORM_OTHER',
		'SPELLEXTRAATTACKSOTHER',
		'SPELLEXTRAATTACKSOTHER_SINGULAR',
		'DISPELFAILEDOTHERSELF',
		'DISPELFAILEDOTHEROTHER',
		'SPELLLOGCRITSCHOOLSELF',
		'SPELLLOGSCHOOLSELF',
		'SPELLLOGCRITSCHOOLOTHER',
		'SPELLLOGCRITSELF',
		'SPELLLOGSELF',
		'SPELLLOGOTHER',
		'SPELLLOGSCHOOLOTHER',
		'SPELLRESISTOTHER',
		'SPELLRESISTSELF',
		'IMMUNESPELLOTHER',
		'IMMUNESPELLSELF',
		'SPELLIMMUNEOTHER',
		'SPELLIMMUNESELF',
		'SPELLLOGABSORBOTHER',
		'SPELLLOGABSORBSELF',
	},
	CHAT_MSG_SPELL_DAMAGESHIELDS_ON_OTHERS = {
		'DAMAGESHIELDOTHERSELF',
		'DAMAGESHIELDOTHEROTHER',
		'SPELLRESISTOTHEROTHER',
		'SPELLRESISTOTHERSELF',
	},
	CHAT_MSG_SPELL_DAMAGESHIELDS_ON_SELF = {
		'DAMAGESHIELDSELFOTHER',
		'SPELLRESISTSELFOTHER',
		'DAMAGESHIELDOTHEROTHER',
		'SPELLRESISTOTHEROTHER',
	},
	CHAT_MSG_SPELL_FAILED_LOCALPLAYER = {
		'SPELLFAILPERFORMSELF',
		'SPELLFAILCASTSELF',
	},
	CHAT_MSG_SPELL_ITEM_ENCHANTMENTS = {
		'ITEMENCHANTMENTADDSELFSELF',
		'ITEMENCHANTMENTADDSELFOTHER',
		'ITEMENCHANTMENTADDOTHERSELF',
		'ITEMENCHANTMENTADDOTHEROTHER',
	},
	CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS = {
		'PERIODICAURAHEALSELFOTHER',
		'PERIODICAURAHEALOTHEROTHER',
		'SPELLPOWERLEECHOTHERSELF',
		'SPELLPOWERLEECHOTHEROTHER',
		'SPELLPOWERDRAINOTHERSELF',
		'SPELLPOWERDRAINOTHEROTHER',
		'POWERGAINOTHERSELF',
		'AURAAPPLICATIONADDEDOTHERHELPFUL',
		'POWERGAINOTHEROTHER',
		'AURAADDEDOTHERHELPFUL',
		'PERIODICAURADAMAGESELFOTHER',
		'PERIODICAURADAMAGEOTHEROTHER',
		'PERIODICAURADAMAGEOTHER',
		'AURAAPPLICATIONADDEDOTHERHARMFUL',
		'AURAADDEDOTHERHARMFUL',
	},
	CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE = {
		'AURAAPPLICATIONADDEDOTHERHARMFUL',
		'AURAADDEDOTHERHARMFUL',
		'PERIODICAURADAMAGESELFOTHER',
		'PERIODICAURADAMAGEOTHEROTHER',
		'PERIODICAURADAMAGEOTHER',
		'SPELLLOGABSORBSELFOTHER',
		'SPELLLOGABSORBOTHEROTHER',
		'SPELLPOWERLEECHOTHERSELF',
		'SPELLPOWERLEECHOTHEROTHER',
		'SPELLPOWERDRAINOTHERSELF',
		'SPELLPOWERDRAINOTHEROTHER',
		'POWERGAINOTHERSELF',
		'AURAAPPLICATIONADDEDOTHERHELPFUL',
		'POWERGAINOTHEROTHER',
		'AURAADDEDOTHERHELPFUL',
		'SPELLLOGABSORBOTHER',
	},
	CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS = {
		'PERIODICAURAHEALSELFOTHER',
		'PERIODICAURAHEALOTHERSELF',
		'PERIODICAURAHEALOTHEROTHER',
		'PERIODICAURAHEALSELFSELF',
		'AURAAPPLICATIONADDEDSELFHELPFUL',
		'POWERGAINOTHEROTHER',
		'POWERGAINOTHERSELF',
		'POWERGAINSELFSELF',
		'AURAAPPLICATIONADDEDOTHERHELPFUL',
		'AURAADDEDSELFHELPFUL',
		'POWERGAINSELFOTHER',
		'AURAADDEDOTHERHELPFUL',
		'SPELLPOWERLEECHSELFOTHER',
		'SPELLPOWERDRAINSELFSELF',
		'SPELLPOWERDRAINSELFOTHER',
		'PERIODICAURADAMAGESELFSELF',
		'PERIODICAURADAMAGEOTHERSELF',
		'PERIODICAURADAMAGESELF',
	},
	CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE = {
		'PERIODICAURADAMAGESELFSELF',
		'PERIODICAURADAMAGEOTHERSELF',
		'PERIODICAURADAMAGESELFOTHER',
		'PERIODICAURADAMAGEOTHEROTHER',
		'PERIODICAURADAMAGESELF',
		'PERIODICAURADAMAGEOTHER',
		'AURAAPPLICATIONADDEDSELFHARMFUL',
		'AURAADDEDSELFHARMFUL',
		'AURAAPPLICATIONADDEDOTHERHARMFUL',
		'AURAADDEDOTHERHARMFUL',
		'SPELLLOGABSORBSELFOTHER',
		'SPELLLOGABSORBOTHEROTHER',
		'SPELLLOGABSORBSELFSELF',
		'SPELLLOGABSORBOTHERSELF',
		'SPELLPOWERLEECHSELFOTHER',
		'SPELLPOWERDRAINSELFSELF',
		'SPELLPOWERDRAINSELFOTHER',
		'SPELLLOGABSORBSELF',
		'SPELLLOGABSORBOTHER',
	},
	CHAT_MSG_SPELL_SELF_BUFF = {
		'HEALEDCRITSELFSELF',
		'HEALEDCRITSELFOTHER',
		'HEALEDSELFSELF',
		'HEALEDSELFOTHER',
		'ITEMENCHANTMENTADDSELFSELF',
		'ITEMENCHANTMENTADDSELFOTHER',
		'SIMPLECASTSELFOTHER',
		'SIMPLECASTSELFSELF',
		'SPELLTERSE_SELF',
		'OPEN_LOCK_SELF',
		'SIMPLEPERFORMSELFOTHER',
		'SIMPLEPERFORMSELFSELF',
		'SPELLTERSEPERFORM_SELF',
		'DISPELFAILEDSELFSELF',
		'DISPELFAILEDSELFOTHER',
		'SPELLCASTSELFSTART',
		'SPELLPERFORMSELFSTART',
		'SPELLEXTRAATTACKSSELF',
		'SPELLPOWERLEECHSELFOTHER',
		'SPELLEXTRAATTACKSSELF_SINGULAR',
		'SPELLPOWERDRAINSELFSELF',
		'SPELLPOWERDRAINSELFOTHER',
		'POWERGAINSELFSELF',
		'POWERGAINSELFOTHER',
		'SPELLSPLITDAMAGESELFOTHER',
		'SPELLIMMUNESELFSELF',
		'SPELLREFLECTSELFOTHER',
		'SPELLIMMUNESELFOTHER',
		'IMMUNESPELLSELFSELF',
		'SPELLDEFLECTEDSELFOTHER',
		'SPELLRESISTSELFOTHER',
		'SPELLBLOCKEDSELFOTHER',
		'SPELLLOGABSORBSELFOTHER',
		'SPELLEVADEDSELFOTHER',
		'SPELLPARRIEDSELFOTHER',
		'SPELLDODGEDSELFOTHER',
		'SPELLREFLECTSELFSELF',
		'SPELLDEFLECTEDSELFSELF',
		'IMMUNESPELLSELFOTHER',
		'SPELLRESISTSELFSELF',
		'SPELLPARRIEDSELFSELF',
		'SPELLEVADEDSELFSELF',
		'SPELLLOGABSORBSELFSELF',
		'SPELLDODGEDSELFSELF',
		'PROCRESISTSELFSELF',
		'SPELLMISSSELFSELF',
		'PROCRESISTSELFOTHER',
		'SPELLMISSSELFOTHER',
	},
	CHAT_MSG_SPELL_SELF_DAMAGE = {
		'SPELLLOGCRITSCHOOLSELFSELF',
		'SPELLLOGSCHOOLSELFSELF',
		'SPELLLOGCRITSCHOOLSELFOTHER',
		'SPELLLOGSCHOOLSELFOTHER',
		'SPELLLOGCRITSELFSELF',
		'SPELLLOGSELFSELF',
		'SPELLLOGCRITSELFOTHER',
		'SPELLLOGSELFOTHER',
		'SPELLDURABILITYDAMAGEALLSELFOTHER',
		'SPELLDURABILITYDAMAGESELFOTHER',
		'SIMPLECASTSELFOTHER',
		'SIMPLECASTSELFSELF',
		'SPELLTERSE_SELF',
		'OPEN_LOCK_SELF',
		'SIMPLEPERFORMSELFOTHER',
		'SIMPLEPERFORMSELFSELF',
		'SPELLTERSEPERFORM_SELF',
		'SPELLIMMUNESELFSELF',
		'SPELLREFLECTSELFOTHER',
		'SPELLIMMUNESELFOTHER',
		'IMMUNESPELLSELFSELF',
		'SPELLDEFLECTEDSELFOTHER',
		'SPELLRESISTSELFOTHER',
		'SPELLLOGABSORBSELFOTHER',
		'SPELLBLOCKEDSELFOTHER',
		'SPELLPARRIEDSELFOTHER',
		'SPELLDODGEDSELFOTHER',
		'SPELLEVADEDSELFOTHER',
		'SPELLDEFLECTEDSELFSELF',
		'SPELLREFLECTSELFSELF',
		'IMMUNESPELLSELFOTHER',
		'SPELLRESISTSELFSELF',
		'SPELLPARRIEDSELFSELF',
		'SPELLDODGEDSELFSELF',
		'SPELLEVADEDSELFSELF',
		'SPELLLOGABSORBSELFSELF',
		'SPELLMISSSELFSELF',
		'SPELLMISSSELFOTHER',
		'SPELLCASTSELFSTART',
		'SPELLPERFORMSELFSTART',
		'SPELLINTERRUPTSELFOTHER',
		'DISPELFAILEDSELFSELF',
		'DISPELFAILEDSELFOTHER',
		'SPELLEXTRAATTACKSSELF',
		'SPELLEXTRAATTACKSSELF_SINGULAR',
		'SPELLPOWERLEECHSELFOTHER',
		'SPELLPOWERDRAINSELFSELF',
		'SPELLPOWERDRAINSELFOTHER',
		'SPELLLOGSCHOOLOTHER',
		'SPELLLOGSCHOOLSELF',
		
	},
	CHAT_MSG_SPELL_TRADESKILLS = {
		'FEEDPET_LOG_FIRSTPERSON',
		'FEEDPET_LOG_THIRDPERSON',
		'TRADESKILL_LOG_FIRSTPERSON',
		'TRADESKILL_LOG_THIRDPERSON',
	},
}
eventTable['CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS'] = eventTable['CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS']
eventTable['CHAT_MSG_COMBAT_CREATURE_VS_PARTY_MISSES'] = eventTable['CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES']
eventTable['CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS'] = eventTable['CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS']
eventTable['CHAT_MSG_COMBAT_FRIENDLYPLAYER_MISSES'] = eventTable['CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES']
eventTable['CHAT_MSG_COMBAT_HOSTILE_DEATH'] = eventTable['CHAT_MSG_COMBAT_FRIENDLY_DEATH']
eventTable['CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS'] = eventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS']
eventTable['CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES'] = eventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES']
eventTable['CHAT_MSG_COMBAT_PARTY_HITS'] = eventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS']
eventTable['CHAT_MSG_COMBAT_PARTY_MISSES'] = eventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES']
eventTable['CHAT_MSG_COMBAT_PET_HITS'] = eventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS']
eventTable['CHAT_MSG_COMBAT_PET_MISSES'] = eventTable['CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES']
eventTable['CHAT_MSG_SPELL_AURA_GONE_PARTY'] = eventTable['CHAT_MSG_SPELL_AURA_GONE_OTHER']
eventTable['CHAT_MSG_SPELL_CREATURE_VS_PARTY_BUFF'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
eventTable['CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']
eventTable['CHAT_MSG_SPELL_CREATURE_VS_SELF_BUFF'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
eventTable['CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']
eventTable['CHAT_MSG_SPELL_FRIENDLYPLAYER_BUFF'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
eventTable['CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']
eventTable['CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
eventTable['CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']
eventTable['CHAT_MSG_SPELL_PARTY_BUFF'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
eventTable['CHAT_MSG_SPELL_PARTY_DAMAGE'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']
eventTable['CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS'] = eventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS']
eventTable['CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE'] = eventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE']
eventTable['CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS'] = eventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS']
eventTable['CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE'] = eventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE']
eventTable['CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS'] = eventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS']
eventTable['CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE'] = eventTable['CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE']
eventTable['CHAT_MSG_SPELL_PET_BUFF'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF']
eventTable['CHAT_MSG_SPELL_PET_DAMAGE'] = eventTable['CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE']

for _, t in pairs(eventTable) do
	setmetatable(t, { __index = function(t2,k)
		for i, v in ipairs(t2) do
			if v == k then
				return true
			end
		end
	end } )
end

for event, t in pairs(CLS_EventTable) do
	if not eventTable[event] then
		print("eventTable is missing " .. event)
	else
		for pattern in pairs(t) do
			if not eventTable[event][pattern] then
				print("eventTable."..event.." is missing ".. pattern)
			end
		end
	end
end
